Elixirにおける並行処理の設計は、単純なプロセスの起動を越えるものであり、 99.9999999%の信頼性(9つの9) (9つの9)。これは約 30年に1秒の停止時間に相当する。この水準に到達するためには、 5つの質問フレームワークを使用します。
構造的ヒューリスティック
OTPコードを1行も書く前に、以下の質問を使って状態を持つ問題を管理可能な基本要素に分解しましょう:
- 環境と制約: 単一ノードですか?グローバルクラスタですか?メモリや入出力の制限はどれくらいですか?
- 焦点ポイント: データはどこにありますか?誰が状態を「所有」していますか(例:結果帳票など)?
- 実行時特性: 同時アクセス数はどれくらいですか?CPU集中型か、I/O集中型ですか?
- 保護: どの状態を維持すべきですか?再起動してもよいと許容できるものは何ですか?
- ブートストラップ: ツリーをどのように初期化しますか?どのサービスが他のサービスに依存していますか?
これらの質問を制約として扱うことで、「大泥棒」並行処理(すべてのプロセスが明確な階層なしに互いに通信する状態)を防ぎます。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>